The present invention relates generally to the field of personal computers. More particularly, the present invention relates to memory management of flash memory storing Basic Input/Output System (BIOS) code or instructions. Specifically, the present invention relates to a method and system using a virtual lock for boot block flash.
A flash memory is a popular form of nonvolatile memory that can be erased and reprogrammed in units of memory called blocks. A common use for flash memory is to store the BIOS for a computing system. BIOS is the essential system code or instructions used to control system configuration and to load the operating system for the computing system. In particular, BIOS provides the first instructions a computing system executes when it is first turned on. The regions of BIOS that is first executed when a computing system is first turned is referred to as xe2x80x9crecovery BIOSxe2x80x9d region. The recovery BIOS region stores recovery or reset code that sets forth how the computing system is to be booted each time the computing system is first turned on. Because this region of BIOS is critical to the computing system, its protection and integrity is essential.
Hence, a computing system must guarantee security and integrity of the recovery BIOS region in flash memory. As such, the recovery BIOS region is hardware protected (e.g., by a user setting a pin via a jumper). In current computing architectures, this region is limited to the first block (xe2x80x9cboot blockxe2x80x9d) of the flash memory, which is limited to 64 Kbytes of memory and is the largest block size prescribed by current flash memory technologies. Thus, only the first block can be hardware protected.
Consequently, as computing architectures become more complex, the code and instructions for recovery BIOS can exceed current limits of the 64 Kbytes of hardware protected memory space. Thus, a limitation with current computing systems is that the recovery BIOS region has to fit into a limited amount of memory space to be hardware protected.